var extend = function(source,destination) {
	for ( var property in source) {
		if(!destination[property])
			destination[property] = source[property];
	}
	return destination;
};

window.lvan = {
	m:{},
	mo:[],
	curTab:null,
	tabs:[],
	disableAll: function(id) {
		for(var i=0; i<this.mo.length; i++) {
			if(!this.contains(id)&&this.mo[i].id==id) {
				continue;
			}else {
				this.mo[i].disable();
			}
		}
	},
	enable:function(id) {
		for(var i=0; i<this.mo.length; i++) {
			if(this.mo[i].id==id) {
				this.mo[i].enable();
				return;
			}
		}
	},
	removeTab: function(id) {
		for(var i=0; i<this.mo.length; i++) {
			if(this.mo[i].id==id) {
				this.mo[i].remove();
				this.mo.splice(i,1);
				break;
			}
		}
		for(var i=0; i<this.tabs.length; i++) {
			if(this.tabs[i]==id) {
				this.tabs.splice(i, 1);
				break;
			}
		}
		jQuery("#tab_"+id).remove();
		if(this.tabs.length>0)
			this.showTab(this.tabs[0]);
	},
	contains:function(id) {
		for(var i=0; i<this.tabs.length; i++) {
			if(this.tabs[i]==id)
				return true;
		}
		return false;
	},
	addTab: function(id,title) {
		if(this.contains(id)) {
			this.showTab(id);
			return;
		}
		var tabHTML = "<li id='tab_"+id+"' class='tab0' item='"+id+"'><div class='tab-item-text'>"+title+"</div><div class='cloze' onclick='lvan.removeTab(\""+id+"\")'>x</div></li>";
		var tabObj = jQuery(tabHTML);
		tabObj.click(function() {
			lvan.showTab(jQuery(this).attr("item"));
		});
		//tabObj.dblclick(function() {
		//	lvan.removeTab(jQuery(this).attr("item"));
		//});
		this.tabC.prepend(tabObj);
		this.showTab(id);
		if(!this.m[id]) {
			alert("此模块主体未完善");
		}else {
			this.m[id]();
		}
		this.tabs.push(id);
	},
	showTab: function(id) {
		if(this.curTab==id){
			return;
		}
		if(this.contains(id)) {
			jQuery("#tab_"+this.curTab).before(jQuery("#tab_"+id));
		}
		jQuery(".tab0").removeClass("tab-selected");
		jQuery("#tab_"+id).addClass("tab-selected");
		this.disableAll(id);
		if(this.contains(id))
			this.enable(id);
		this.curTab = id;
	}
};
module = {
	init: function() {
		this.obj=jQuery(this.html);
		lvan.contentC.append(this.obj);
		lvan.mo.push(this);
	},
	obj: null,
	disable: function() {this.obj.hide();},
	enable: function() {this.obj.show();},
	remove: function() {this.obj.remove();},
	html:"<font color='gray'>无模块内容加载</font>"
};
var req = function(action, config, callback) {
	$.post(action, config, function(result) {
		if (result.code) {
			alert(result.message);
			return;
		}
		callback(result);
	}, "json");
};

//***组件
//数字输入框
var numEl = function(p,a,c,f) {
	var html = "<input type='text' name='"+p+"' value='"+(c==null?'':c)+"' f='"+f+"' onkeyup='return numKeyUp(this)'/>";
	return html;
};
function numKeyUp(p) {
	if(p.value!=p.value.replace(/[^\.\d-]/g,'')) {
		p.value=p.value.replace(/[^\.\d-]/g,'');
	}
	if(p.value.split('.').length>2){
		this.value=this.value.split('.')[0]+'.'+this.value.split('.')[1];
	}
}
